leetcodeJS

Personal solution for leetcode problem using Javascript

View on GitHub

Problem

There is a biker going on a road trip. The road trip consists of n + 1 points at different altitudes. The biker starts his trip on point 0 with altitude equal 0.

You are given an integer array gain of length n where gain[i] is the net gain in altitude between points i​​​​​​ and i + 1 for all (0 <= i < n). Return the highest altitude of a point.

Example 1:

Input: gain = [-5,1,5,0,-7] Output: 1 Explanation: The altitudes are [0,-5,-4,1,1,-6]. The highest is 1.

Example 2:

Input: gain = [-4,-3,-2,-1,4,3,2] Output: 0 Explanation: The altitudes are [0,-4,-7,-9,-10,-6,-3,-1]. The highest is 0.

Constraints:

n == gain.length 1 <= n <= 100 -100 <= gain[i] <= 100

Pre analysis

Will keep track of current altitude and max altitude. if current altitude is greater than max, then update max.

Post analysis

Time complexity is O(n) and space complexity is O(1)

Another solution

in place solution

/**
 * @param {number[]} gain
 * @return {number}
 */
var largestAltitude = function (gain) {
  for (let i = 1; i < gain.length; i++) {
    gain[i] = gain[i] + gain[i - 1];
  }
  return Math.max(0, ...gain);
};